#include "login.h"
#include "ui_login.h"

login::login(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::login)
{
    ui->setupUi(this);
    setWindowFlags(Qt::FramelessWindowHint | Qt::Window);
    background_main = new QLabel(this);
    QPixmap img_1(":/login/login_2.jpg");
    background_main->setPixmap(img_1);
    background_main->setGeometry(this->rect()); // 填满整个窗口
    background_main->setScaledContents(true);  // 自动拉伸适配窗口大小
    background_main->lower();                  // 将背景设置到最底层

    QMovie *movie = new QMovie(":/gif/gif/gif_left.gif");
    // 设置 GIF 动画到
    ui->label_movie->setMovie(movie);
    ui->label_movie->setGeometry(this->rect()); // 填满整个窗口
    ui->label_movie->setScaledContents(true);  // 自动拉伸适配窗口大小
    ui->label_movie->lower();                  // 将背景设置到最底层
    // 启动 GIF 动画
    movie->start();

    QPixmap img_2(":/login/exit_2.png");
    ui->Button_exit->setIcon(QIcon(img_2));
    ui->label_movie->setGeometry(this->rect()); // 填满整个窗口

//    QPixmap img_login(":/login/login_m.png");
//    ui->label_loginMy->setPixmap(img_login);
//   // ui->label_loginMy->setGeometry(this->rect());
//    ui->label_loginMy->setScaledContents(true);  // 自动拉伸适配窗口大小
//    ui->label_loginMy->lower();                  // 将背景设置到最底层

      sql_init("iotHome.db");

      connect(this,&login::log_in_yes,this,[&]()
      {
          Widget *w =new Widget;
          w->show();
          close();
      });

}




login::~login()
{
    db.close();
    delete ui;
}

void login::on_Button_exit_clicked()
{
    this->close();
}
void setCircularBackgroundWithTransparent(QLabel *label, const QPixmap &pixmap) {
    // Step 1: 获取 QLabel 的大小
    QSize labelSize = label->size();
    int width = labelSize.width();
    int height = labelSize.height();

    // Step 2: 创建透明背景的 QPixmap
    QPixmap circularPixmap(width, height);
    circularPixmap.fill(Qt::transparent); // 填充透明背景

    // Step 3: 使用 QPainter 绘制圆形区域
    QPainter painter(&circularPixmap);
    painter.setRenderHint(QPainter::Antialiasing);

    // 创建圆形路径
    QPainterPath circularPath;
    int diameter = qMin(width, height);
    int xOffset = (width - diameter) / 2;   // 保持圆形居中
    int yOffset = (height - diameter) / 2;  // 保持圆形居中
    circularPath.addEllipse(xOffset, yOffset, diameter, diameter);

    // 裁剪为圆形区域
    painter.setClipPath(circularPath);

    // 将原始图片绘制到圆形区域内
    QPixmap scaledPixmap = pixmap.scaled(width, height, Qt::KeepAspectRatioByExpanding, Qt::SmoothTransformation);
    painter.drawPixmap(0, 0, scaledPixmap);

    painter.end();

    // Step 4: 将裁剪后的圆形图片设置为 QLabel 的 pixmap
    label->setPixmap(circularPixmap);
    label->setScaledContents(false); // 防止 QLabel 对图片拉伸


}



void login::on_pushButton_2_clicked()
{
    on_reg_user();
}

void login::on_pushButton_1_clicked()
{
    on_Log_ing_user();
}

void login::on_pushButton_clicked()
{
  face *face_1 = new face;
  face_1->show();
  connect(face_1,&face::log_in_yes,this,[&](QString user)
  {
    emit this->log_in_yes(user);
  });
}
